package day2_linkedlist.leetcode;

/**
 * @Author: yuisama
 * @Date: 2021/9/1 15:13
 * @Description:链表中间节点
 * https://leetcode-cn.com/problems/middle-of-the-linked-list/description/
 * 给定一个头结点为 head 的非空单链表，返回链表的中间结点。
 * 如果有两个中间结点，则返回第二个中间结点。
 */
public class Num876 {
    // 快慢指针
    public ListNode middleNode(ListNode head) {
        ListNode low = head;
        ListNode fast = head;
        while (fast != null && fast.next != null) {
            low = low.next;
            fast = fast.next.next;
        }
        // 此时low节点即为所求
        return low;
    }
}
